我正在编写一些Python代码,以使用连接的组件在图像中标记不同的对象。我正在使用4邻居来评估逻辑中的每个像素的标签,并且没有使用unionfind创建标签的等效列表,因为我在理解它时遇到了一些麻烦,而且我没有足够的时间来盲目使用它从别人那里复制它。
我将解释到现在为止我所起床:
useEffect
因此,在我稍后要解释的部分中,我过滤掉了是否将对应值分配给了一个与其自身对应的值,如果没有,我将其修复。但是它没有按预期工作。仅当我多次应用对应关系时,它才有效。例如。如果我有对应于12的13,对应于12的11和对应于1的11,如果只修复一次,我将摆脱13-> 12,所以13-> 11,但是我想要13-> 1。我保证它会一直对应一个仅与自身对应的数字吗?这是执行以下操作的代码片段:
import React,{ useReducer,useEffect } from "react";
export const SecContext = React.createContext();
const initialState = {
second: new Date().getSeconds(),error: null,};
const reducer = (state,action) => {
switch (action.type) {
case "UPDATE_SECOND":
return {
...state,second: action.second,};
default:
throw new Error();
}
};
export const SecContextProvider = (props) => {
const [state,dispatch] = useReducer(reducer,initialState);
const updateSecond = () => {
let second = new Date().getSeconds();
console.log("state is ",state);
dispatch({
type: "UPDATE_SECOND",payload: second,});
};
useEffect(() => {
const timeoutId = setInterval(() => {
updateSecond();
},1000);
return function cleanup() {
clearInterval(timeoutId);
};
},[updateSecond]);
return (
<SecContext.Provider value={[state,dispatch]}>
{props.children}
</SecContext.Provider>
);
};
export default SecContextProvider;
这是我正在使用的图像:
此图片的搜索结果如下:
corr = [0,1,2,2,1,2,1,2,1,2,1,2,11,1,1,1,2,1,2,1,1,2,1, 2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1, 1,1,48,1,1,52,52,52,52,52,52,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57, 57,57,57]
elementos = [0,1,2,52]
如您所见,有些对象内部有两个值。如果我使用“作弊”功能,我可以摆脱它们,但是我不认为这种作弊具有固定的价值,我也不想让它存在,因为这是错误的。
要查看这些数组值,只需在返回行上使用断点,它们就会全部显示出来!